using System.Collections;
using System.Collections.Generic;




namespace FineCollection.Intf
{
    /// <summary>
    /// An ordered set (read only).
    /// As a set, all items are different and nulls are not allowed.
    /// </summary>
    /// <typeparam name="T">type of an item.</typeparam>
    public interface ROrderSet<T> : RSet<T>, RList<T>
        // where T: System.IComparable<T>
    {

        /// <summary>
        /// Comparator provides comparison and sorting.
        /// </summary>
        IComparer<T> Comparer { get; }

        /// <summary>
        /// Creates a read-only ordered iterator.
        /// </summary>
        /// <returns>just created iterator.</returns>
        new ROrderIterator<T> TakeIterator();

    }
}